import 'package:equatable/equatable.dart';

class CustomLexicalItemUseCaseInput extends Equatable {
  const CustomLexicalItemUseCaseInput({
    required this.id,
    required this.example,
    required this.translation,
    required this.exampleValid,
    required this.translationValid,
  });

  final String id;
  final String example;
  final String translation;
  final bool exampleValid;
  final bool translationValid;

  @override
  List<Object?> get props {
    return [
      id,
      example,
      translation,
      exampleValid,
      translationValid,
    ];
  }

  CustomLexicalItemUseCaseInput copyWith({
    String Function()? id,
    String Function()? example,
    String Function()? translation,
    bool Function()? exampleValid,
    bool Function()? translationValid,
  }) {
    return CustomLexicalItemUseCaseInput(
      id: id == null ? this.id : id(),
      example: example == null ? this.example : example(),
      translation: translation == null ? this.translation : translation(),
      exampleValid: exampleValid == null ? this.exampleValid : exampleValid(),
      translationValid: translationValid == null ? this.translationValid : translationValid(),
    );
  }
}
